﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Flighttracker
{
    public class Vliegtuig : ISearchable
    {
        public Vliegtuigtype Vliegtuigtype { get; private set; }
        public string Registratiecode { get; private set; }
        public Luchtvaartmaatschappij Luchtvaartmaatschappij { get; private set; }
        public List<Vlucht> VluchtList { get; private set; }

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="vliegtuigtype"></param>
        /// <param name="registratiecode"></param>
        /// <param name="luchtvaartmaatschappij"></param>
        public Vliegtuig(Vliegtuigtype vliegtuigtype, string registratiecode, Luchtvaartmaatschappij luchtvaartmaatschappij)
        {
            this.Vliegtuigtype = vliegtuigtype;
            this.Registratiecode = registratiecode;
            this.Luchtvaartmaatschappij = luchtvaartmaatschappij;
            VluchtList = new List<Vlucht>();
        }

        public Vliegtuig(List<string> stringList)
        {
            Registratiecode = stringList[0];
            Vliegtuigtype = (Vliegtuigtype)Flighttracker.Instance.ZoekObject(stringList[1]);
            if (stringList[2] != "null") Luchtvaartmaatschappij = (Luchtvaartmaatschappij)Flighttracker.Instance.ZoekObject(stringList[2]);
            Luchtvaartmaatschappij.VoegVliegtuigToe(this);
            VluchtList = new List<Vlucht>();

        }

        /// <summary>
        /// Geeft de lijst terug van alle vluchten
        /// </summary>
        /// <returns></returns>
        public List<Vlucht> ToonAlleVluchten()
        {
            return this.VluchtList;
        }

        /// <summary>
        /// Voegt een vlucht toe aan de lijst.
        /// </summary>
        /// <param name="vlucht"></param>
        /// <returns></returns>
        public void VoegVluchtToe(Vlucht vlucht)
        {
            VluchtList.Add(vlucht);
        }

        public bool ZoekUniekID(string id)
        {
            if (this.Registratiecode == id)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }
}